#include<stdio.h>
int main(void)
{
    int n,m,i;
    scanf("%d%d",&n,&m);
    int a[1000]={0},b[1000]={0},j=0;
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    if(m <a[0])
    {
        b[0]=m;
        for(i=1;i<=n;i++)
            b[i]=a[i-1];
    }
    else if(m > a[n-1])
    {
        for(i=0;i<n;i++)
            b[i]=a[i];
        b[n]=m;
    }
    else
    {
        for(i=0;i<n;i++)
        {
            if(m >= a[i] && m <= a[i+1])
            {
                b[j++]=a[i];
                b[j++]=m;
            }
            else b[j++]=a[i];
        }
    }
    for(i=0;i<n+1;i++)
        printf("%d ",b[i]);
    return 0;
}
/* 问题描述
幼儿园小朋友要玩老鹰捉小鸡的游戏，老师把在场的小朋友按身高递增的顺序排好了队，这时有一位小朋友来晚了，老师需要把他按照身高插入到排好的队列中，请你帮助幼儿园老师把这位晚到的小朋友插入到队列中合适的位置。
输入说明
输入的第1行包含原队列长度N（任意int范围内的非负整数）与待插入的小朋友的身高值M（单位为cm）；第2行包含N个递增的小朋友的身高值代表原递增数列。
输出说明
根据此递增数列，构造出递增链表，然后将M插入到链表中，输出插入后的链表对应的数列。数字间隔一个空格，但末尾不能有空格。
输入样例
6 100
99 102 104 105 107 110
输出样例
99 100 102 104 105 107 110 */